package com.wolfpire.workflow.spring;

import java.util.List;

import org.jbpm.pvm.internal.task.TaskImpl;

import com.wolfpire.system.common.Page;
import com.wolfpire.system.common.base.service.IBaseHibernateService;
import com.wolfpire.system.model.User;
import com.wolfpire.workflow.om.JbpmTask;
import com.wolfpire.workflow.om.MyTask;

public interface MyTaskService extends IBaseHibernateService<MyTask, Long> {

	public List<JbpmTask> getJbpmTasks(String instanceId);
	
	/**
	 * 正常提交的历史记录
	 * @param task
	 * @param user
	 * @param operateType
	 * @param remarks
	 * @param nodeId
	 * @param attIds
	 */
	public void saveMyTask(TaskImpl task, User user, String operateType,
			String remarks, Long nodeId, String attIds);
	
	/**
	 * 驳回时候历史记录
	 * @param task
	 * @param user
	 * @param operateType
	 * @param remarks
	 * @param nodeId
	 * @param attIds
	 * @param preTaskId
	 * @param preTaskName
	 * @param preUserId
	 * @param preUserName
	 */
	public void saveMyTask(TaskImpl task, User user, String operateType,
			String remarks, Long nodeId, String attIds, String preTaskId,
			String preTaskName, String preUserId, String preUserName);
	
	/**
	 * 根据form获取对应的任务详情
	 * @param page
	 * @param id
	 * @return
	 */
	public Page<MyTask> queryTaskDetailList(Page<MyTask> page, Long id, Long formTypeId);
	
	/**
	 * 获取最新的历史活动节点	
	 * @param instanceId
	 * @return
	 */
	public MyTask queryLastTaskInfo(Long instanceId);
	
	/**
	 * 获取第一个历史任务
	 * @param instanceId
	 * @return
	 */
	public MyTask findFirstTaskInfo(Long instanceId);

}
